import axios from 'axios';
import { useRouter } from 'vue-router';
// // 引入 Notify 样式组件
import { Notify } from 'vant';
let baseUrl = ''
switch (process.env.NODE_ENV) {
    case 'production':
        baseUrl = 'http://47.94.148.165:3001/api';
        break;
    case 'development':
        baseUrl = '/api'
        break;
}

// 做一个  默认的请求配置

const instance = axios.create({
    baseURL: baseUrl,
    timeout: 5000,
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
})


// 添加请求拦截器
instance.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    if (localStorage.getItem('token')) {
        if (config && config.headers) {
            config.headers.token = localStorage.getItem('token')
        }
    }
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
instance.interceptors.response.use(function (response) {
    console.log(response);

    // 对响应数据做点什么
    if (response.data && response?.data?.code == 200) {
        // 如果后端接口返回有token 数据,就将token 数据保存到保存到本地,作为一个token 有效期的的一个验证

        // 缺个判断
        // localStorage.setItem('token', response.data?.data?.token)
    } else {
        // 如果后端返回的状态码是10119,表示token 失效,返回到登录页
        if (response.data?.code == '10119') {
            localStorage.removeItem('token');
            const router = useRouter();
            router.push('/login')
        }
    }
    //  将后端的message 信息作为一个提示
    Notify({ type: response.data?.code == 200 ? 'success' : 'danger', message: response.data?.message });
    return response.data;
}, function (error) {
    // 对响应错误做点什么
    //此处服务器没有响应,可能是断网了或者服务器宕机了.
    return Promise.reject(error);
});


export default instance